package com.boarsoft.boar.file;

import java.util.List;

import com.boarsoft.boar.entity.FileInfo;
import com.boarsoft.boar.entity.ServerInfo;
import com.boarsoft.common.dao.PagedResult;

public interface FileBiz {
	/**
	 * 查询已添加的FileInfo
	 * 
	 * @param projId
	 * @param key
	 * @param orderBy
	 * @param pageNo
	 * @param pageSize
	 * @return PagedResult<FileInfo>
	 */
	PagedResult<FileInfo> list(String projId, String key, String orderBy, int pageNo, int pageSize);

	/**
	 * 保存FileInfo
	 * 
	 * @param o
	 */
	void save(String appId, FileInfo o);

	/**
	 * 保存FileInfo
	 *
	 * @param fileInfo
	 */
	void save(FileInfo fileInfo);

	/**
	 * 删除某个FileInfo
	 * 
	 * @param id
	 * @return 
	 */
	void delete(String id);

	/**
	 * 获取FileInfo信息
	 * 
	 * @param id
	 * @return FileInfo
	 */
	FileInfo get(String id);

	/**
	 * 获取FileInfo信息
	 *
	 * @return FileInfo
	 */
	FileInfo find(String appId, String code);
	/**
	 * 复制ID为sourceId的节点到ID为parentId的节点下
	 * 
	 * @param sourceId
	 *            被拷贝的节点的ID
	 * @param parentId
	 *            目标节点（新节点的父节点）
	 * @param newId
	 *            新节点的ID（需要与DirInfo一致）
	 * @return
	 */
	String copy(String sourceId, String parentId, String newId);

	/**
	 * 查找出文件关联的服务器 注：文件没有直接和服务器关联 通过查询文件关联的应用，再查询应用关联的服务器实现
	 */
	List<ServerInfo> findFilesOnServer(String fileId);

	/**
	 * 
	 * @param appId
	 * @param o
	 */
	void update(String appId, FileInfo o);
}
